package com.szh.exam;

import java.util.*;

/**
 * 一道简单的算法题，与本项目无实际关系：
 * 构造1000个 [1,100] 闭区间内的随机数，
 * 并统计它们出现的次数，
 * 将结果按照 随机数 次数 的格式打印输出，并按次数倒序排列。
 */
public class MainTest {
    public static void main(String[] args) {
        int[] arr = new int[1000];
        Map<Integer, Integer> map = new HashMap<>();
        Random random = new Random();
        for (int i = 0; i < 1000; i++) {
            arr[i] = random.nextInt(100) + 1;
        }
        for (int data : arr) {
            Integer temp = map.get(data);
            if (null == temp) {
                map.put(data, 1);
            } else {
            map.put(data, map.get(data) + 1);
            }
        }
        List<Map.Entry<Integer, Integer>> list = new ArrayList<>(map.entrySet());
        Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>() {
            @Override
            public int compare(Map.Entry<Integer, Integer> o1, Map.Entry<Integer, Integer> o2) {
                return o2.getValue().compareTo(o1.getValue());
            }
        });
        System.out.println("数字  次数");
        for (Map.Entry<Integer, Integer> entry : list) {
            System.out.println(entry.getKey() + "   " + entry.getValue());
        }
    }
}
